This invention relates to computer systems and in particular to processors that use configurable hardware events to work around flaws that exist in the hardware design by detecting particular hardware events then activating a variety of pseudo-exceptions, each exception for causing behavior of the processor to be modified in a predefined way.
Modern microprocessors grow in complexity from generation to generation due to increasing functionality and performance as required by their consumers. As more functions are added, and more microarchitectural features are added, the processors become more susceptible to design flaws that might not be caught in simulation verification before designs are built into actual hardware. As it costs both time and money to rebuild hardware to fix such design flaws, it is becoming more economic to have some built-in capability to workaround design flaws if one is found. Certain examples of prior art techniques are provided below.
One example includes U.S. Pat. No. 7,100,085, entitled “System for automated problem detection, diagnosis, and resolution in a software driven system.” This patent discloses a system having a database that contains entries with executable code that can make use of these services in order to monitor, diagnose, and solve specific problems. Each entry in the database addresses a specific problem. The executable code is designed to isolate and recognize the problem, and then implement a fix or workaround for that problem. The executable code is designed to completely automate the entire process of detection and resolution of the problem. Further, manual intervention may be employed to complete the diagnosis or solution. Unfortunately, this system is only implemented once a problem is detected and does not provide for avoidance of problem occurrence.
Another example is provided in U.S. Pat. No. 6,219,742, entitled “Method and apparatus for artificially generating general purpose events in an ACPI environment.” This patent discloses hardware implementation of the General Purpose Event status register that supports the ability to assert, under software control, individual General Purpose Event status bits in a General Purpose Event register in an ACPI environment. Software control over the General Purpose Event register allows compensation of a platform electronic apparatus for design defects discovered late in the development cycle. Software control also enables the creation at any time of new “hardware events” which are then processed by the ACPI driver by means of manufacturer provided P-code. The ability to provide a software work-around for a wide range of ACPI related difficulties is advantageously created. Moreover, additional ACPI value-added features can thereafter be developed to differentiate and enhance ACPI compatible products. Similar to the first example, this patent is event related and does not provide for avoidance of problem occurrence.
Accordingly, what are needed are improved techniques for detecting situations within a processor and using those detections to avoid permitting a design flaw to effect a result. Preferably, the techniques provides flexible implementation of a variety of detections as well as a variety of actions activated via psuedo-exceptions to avoid an error related to a design flaw with minimal impact upon performance.